判斷第一個陣列在去除 0 之後是否有足夠的空間裝下第二個陣列 (合併後長度不能改變) ,如果有足夠空間,就將這個兩個陣列合併並且排序
先準備 function , 這邊會傳入兩個陣列,先判斷去除不要元素的長陣列能否裝入短陣列,這裡寫了一個小測試,如果 mergeArray 傳出的結果與題目給的 output 一樣就是 true ,反之 false
在陣列中去除不要元素可以用 filter 這個方法
這邊要注意陣列與陣列之間是不能用 === 相等來比較,因為他們都是不同的 object ,所以我把回傳結果與 output 都轉成 json 格式,把他們變成字串再來用 === 比較
nums1 = [1,2,3,0,0,0]
nums2 = [2,5,6]
Output= [1,2,2,3,5,6]
function mergeArray (ary1,ary2){
if (ary1.length - ary2.length === ary1.filter(x => x === 0 ).length){
}
}
function expect(a,b){
console.log(JSON.stringify(a) === JSON.stringify(b))
}
expect(mergeArray(nums1,nums2),Output)
如果去除不要元素的長陣列能容納短陣列,用 concat 把長短陣列合併,在排序,記得要回傳!!!!
function mergeArray (ary1,ary2){
if (ary1.length - ary2.length === ary1.filter(x => x === 0 ).length){
const result = ary1.filter(x => x != 0).concat(ary2).sort()
return result
}
}
function expect(a,b){
console.log(JSON.stringify(a) === JSON.stringify(b))
}
expect(mergeArray(nums1,nums2),Output)
今天到此為止,有任何問題請在下方留言或透過email、GitHub聯絡我,感謝閱讀